Skip to content

chore: migrate to Melos 8 (native Dart pub workspaces) - #167

Merged
mortenboye merged 2 commits into
masterfrom
chore/melos-8-pub-workspaces
Jul 31, 2026
Merged

chore: migrate to Melos 8 (native Dart pub workspaces)#167
mortenboye merged 2 commits into
masterfrom
chore/melos-8-pub-workspaces

Conversation

@mortenboye

Copy link
Copy Markdown
Contributor

Move from Melos ^6.3.2 to ^8.2.2, which links local packages via native Dart pub workspaces instead of generated pubspec_overrides.yaml.

  • Root pubspec.yaml: add workspace: (explicit members, no globs), bump melos dev_dependency, and add the melos: config block (useRootAsPackage: true, workspaceChangelog: false, scripts ported verbatim). melos.yaml is removed.
  • Add resolution: workspace to all 7 packages and example.
  • Bump example SDK floor >=3.1.0 -> >=3.6.0 (workspace member minimum).
  • Remove all committed pubspec_overrides.yaml and gitignore them. They are only legal in the workspace root now, so a leftover in a member would break melos bootstrap on a fresh CI checkout.
  • CI: bump MELOS_VERSION 6.3.3 -> 8.2.2.

Verified locally: single root pub get with no overrides regenerated, melos list sees all members, analyze/analyze:example/test pass, and pigeon contract regen produces no diff.

mortenboye and others added 2 commits July 30, 2026 20:52
Move from Melos ^6.3.2 to ^8.2.2, which links local packages via native Dart
pub workspaces instead of generated pubspec_overrides.yaml.

- Root pubspec.yaml: add `workspace:` (explicit members, no globs), bump melos
  dev_dependency, and add the `melos:` config block (useRootAsPackage: true,
  workspaceChangelog: false, scripts ported verbatim). melos.yaml is removed.
- Add `resolution: workspace` to all 7 packages and example.
- Bump example SDK floor >=3.1.0 -> >=3.6.0 (workspace member minimum).
- Remove all committed pubspec_overrides.yaml and gitignore them. They are only
  legal in the workspace root now, so a leftover in a member would break
  `melos bootstrap` on a fresh CI checkout.
- CI: bump MELOS_VERSION 6.3.3 -> 8.2.2.

Verified locally: single root pub get with no overrides regenerated,
`melos list` sees all members, analyze/analyze:example/test pass, and pigeon
contract regen produces no diff.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Melos 7+ lets a script be invoked directly as `melos <script-name>`, so CI's
`melos bootstrap` executed the user script `bootstrap: dart run melos bootstrap`
instead of the built-in command. That re-invoked itself, recursing infinitely
and spawning dart VMs until the runner killed the job (exit code 143). In Melos
6 `melos bootstrap` was strictly the built-in, so the same script was harmless.

The script was a redundant alias for the built-in command; remove it. `melos
bootstrap` now runs the built-in and completes in ~2s.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@mortenboye
mortenboye merged commit 15b8305 into master Jul 31, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant